Engineers use compression (also called coding or encoding) to reduce the bit rate of digital video. Compression decreases the cost of storing and transmitting video by converting the video into a lower bit rate form. Decompression (also called decoding) reconstructs a version of the original video from the compressed form. A “codec” is an encoder/decoder system.
When it converts video to a lower bit rate form, a video encoder can decrease the quality of the compressed video to reduce bit rate. By selectively removing detail in the video, the encoder makes the video simpler and easier to compress, but the compressed video is less faithful to the original video. Aside from this basic quality/bit rate tradeoff, the bit rate of the video depends on the content (e.g., complexity) of the video and the format of the video.
Video information is organized according to different formats for different devices and applications. Attributes of video format can include color space, chroma sampling rate, sample depth, spatial resolution and temporal resolution. Typically, quality and bit rate vary directly for spatial resolution (e.g., detail in a picture) and temporal resolution (e.g., number of pictures per second), with higher resolution resulting in higher quality and higher bit rate.
In video encoding and decoding applications, common color spaces include YUV and YCbCr. Y indicates the brightness (luma) channel of the video, while U and V, or Cb and Cr, indicate color (chroma) channels of the video. Aside from YUV and YCbCr, many other color spaces organize video in a luma channel and chroma channels. Chroma sampling rate refers to sampling rate of the chroma channels of video relative to the luma channel.
Each picture element (“pixel”) of a video picture includes one or more samples, and each sample is digitally represented with one or more bits. Using higher sample depth allows for greater precision in sample values, or allows for capturing a wider color gamut. For example, 12-bit sample values have more possible values than 10-bit sample values or 8-bit sample values. As a tradeoff for this higher quality, higher sample depth tends to increase bit rate for encoding and decoding applications.
Scalable video encoding and decoding facilitate delivery of video to devices with different capabilities. A typical scalable video encoder splits video into a base layer and one or more enhancement layers. The base layer by itself provides a version of the video for reconstruction at a lower resolution, and the enhancement layer(s) can be added to provide extra information that will increase video quality. Some scalable encoders and decoders rely on temporal scalability of video. Other common scalable encoding/decoding schemes involve scalability for either the spatial resolution or the overall encoding quality of the video.
Many existing scalable video encoders and decoders use a skip mode for a macroblock when the bit stream of encoded video lacks data for the macroblock. A macroblock is an arrangement of samples in a picture, typically organized as a set of blocks of samples in different channels. The definition of a skipped macroblock depends on the encoder and decoder. Some scalable video encoders and decoders also allow entire pictures to be skipped in the bit stream. While skip modes in existing scalable video encoders and decoders provide acceptable performance in many scenarios, they do not have the benefits and advantages of the techniques and tools described below.